package generic;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * @author SWJ
 * @create 2021-06-21 11:35
 * 加深list接口
 */
public class TestList2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        //2.向集合中添加元素
        list.add("121a");
        list.add("121b");
        list.add("121c");
        list.add("121d");
        System.out.println(list);
        /**测试集合的迭代方式
         * 1.for循环
         * 2.高效for循环
         * 3.iterator
         * 4.listIterator
         * 1.方式由于List是有序的，可以根据下标进行遍历
         *从下标为0开始 */
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //2.for(每轮遍历的元素的类型 元素的名字：要遍历的内容)
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("******************************");
        //3.iterator()关键字
        // Iterator是继承父类Collection的迭代器
        Iterator<String> it = list.iterator();
        //由于集合中有很多的元素，需要重读操作，所以使用循环结构
        while (it.hasNext()) {
            System.out.println(it.next());
            //打印本轮循环中获取元素
        }

        System.out.println("---------------------------");
        //创建list专有的迭代器ListIterator是关键字
        //ListIterator子迭代器 继承父类的功能
        /**ListIterator是Iterator接口 有逆向遍历特有功能*/

        ListIterator<String> it2=list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
    }

}
